A PDG-based Tool and its Use in Analyzing Program Control Dependences
نویسندگان
چکیده
This paper explores the potential of a program representation called the program dependence graph (PDG) for representing and exposing programs’ hierarchical control dependence structure. It presents several extensions to current PDG designs, including a node labeling scheme that simplifies and generalizes PDG traversal. A post-pass PDG-based tool called PEDIGREE has been implemented. It is used to generate and analyze the PDGs for several benchmarks, including the SPEC92 suite. In particular, initial results characterize the control dependence structure of these programs to provide insight into the scheduling benefits of employing speculative execution, and exploiting control equivalence information. Some of the benefits of using the PDG instead of the CFG are demonstrated. Our ultimate aim is to use this tool for exploiting multi-grained parallelism.
منابع مشابه
Dependence Analysis for Recursive Java Programs_SIGPlan_...
Dependence analysis is an important approach to analyzing, understanding, testing and maintaining programs. T his paper develops a new kind of dependence analysis method for recursive Java programs. In our method, the program dependence graph (PDG) of a Java program consists of a set of PDGs that are not connected. They interact with each other by dependences among parameters. Thus, t he inter-...
متن کاملFault Localization for Java Programs using Probabilistic Program Dependence Graph
Fault localization is a process to find the location of faults. It determines the root cause of the failure. It identifies the causes of abnormal behaviour of a faulty program. It identifies exactly where the bugs are. Existing fault localization techniques are Slice based technique, ProgramSpectrum based Technique, Statistics Based Technique, Program State Based Technique, Machine learning bas...
متن کاملSystem Dependence Graphs Based on Parse Trees and their Use in Software Maintenance
The concept of static program slicing was first introduced by Weiser. Ottenstein et al. indicated that an intraprocedural slice can be found in linear time by traversing a suitable graph representation of the program referred to as the program dependence graph (PDG). Horwitz et al. introduced algorithms to construct interprocedural slices by extending the program dependence graph to a supergrap...
متن کاملProgram Slicing
The concept of static program slicing was first introduced by Weiser. Ottenstein et al. indicated that an intraprocedural slice can be found in linear time by traversing a suitable graph representation of the program referred to as the program dependence graph (PDG). Horwitz et al. introduced algorithms to construct interprocedural slices by extending the program dependence graph to a supergrap...
متن کاملParallel Program Graphs and their Classification
We categorize and compare diierent representations of program dependence graphs, including the Control Flow Graph (CFG) which is a sequential representation lacking data dependences, the Program Dependence Graph (PDG) which is a parallel representation of a sequential program and is comprised of control and data dependences, and more generally, the Parallel Program Graph (PPG) which is a parall...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1994